#pragma once

using namespace System;
using namespace System::Collections::Generic;
using namespace System::IO;
using namespace System::Runtime::InteropServices;
using namespace System::Diagnostics;
using namespace CoreRay;

namespace CoreRay
{
	namespace DirectX
	{
		public ref class DirectXPlugin : CoreRayPlugin
		{
		public:
			DirectXPlugin(void);

			virtual property String^ Name
			{
				String^ get() override sealed
				{
					return "DirectX Plugin";
				}
			}

			virtual property String^ Description
			{
				String^ get() override sealed
				{
					return "DirectX Plugin Description";
				}
			}

			virtual bool CheckCompatibility() override;

			virtual void Init(CoreRayContext^ context) override;
		};
	}
}
